package com.atguigu.springboot.entity;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import javax.persistence.*;

/**
 * 使用 JPA 注解配置映射关系
 *
 * @author admin
 * @Entity：告诉 JPA 这是一个实体类（和数据表映射的类）
 * @Table：指定和哪一个数据表对应；如果省略默认表名就是 user
 * @JsonIgnoreProperties：解决在实体类中，发现有字段为null，在转化成json的时候，fasterxml.jackson将对象转换为json报错
 */
@Entity
@Table(name = "tbl_user")
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler"})
public class User {

    /**
     * @Id：这是一个主键 GenerationType.IDENTITY：自增主键
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    /**
     * @Column：这是和数据表对应的一个列
     */
    @Column(name = "last_name", length = 50)
    private String lastName;

    /**
     * @Column：省略默认列名就是属性名
     */
    @Column
    private String email;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}
